package com.yxhl.zoume.data.http.repository.pay;

import com.yxhl.zoume.data.http.rest.param.expresscar.ExpressCarBillDetailParam;
import com.yxhl.zoume.data.http.rest.param.pay.AliPaySignStrParam;
import com.yxhl.zoume.data.http.rest.param.pay.WXPayOrderParam;
import com.yxhl.zoume.data.http.rest.param.pay.WalletPayParam;
import com.yxhl.zoume.data.http.rest.response.expresscar.ExpressCarBillDetailResponse;
import com.yxhl.zoume.data.http.rest.response.pay.ALiPaySignStrResponse;
import com.yxhl.zoume.data.http.rest.response.pay.WXPayOrderResponse;
import com.yxhl.zoume.data.http.rest.response.pay.WalletPayResponse;

import javax.annotation.Nonnull;

import retrofit2.http.Body;
import rx.Observable;

/**
 * Created by vhawk on 16/4/1.
 */
public interface PaymentRepository {

    /**
     * 微信支付前生成预订单接口
     *
     * @param wxPayOrderParam
     * @return
     */
    Observable<WXPayOrderResponse> wxPayPreOrder(@Nonnull WXPayOrderParam wxPayOrderParam);

    /**
     * 支付宝支付，获取签证字符串
     *
     * @param aliPaySignStrParam
     * @return
     */
    Observable<ALiPaySignStrResponse> aliPaySignStr(@Nonnull AliPaySignStrParam aliPaySignStrParam);

    /**
     * 钱包支付
     *
     * @param payParam
     * @return
     */
    Observable<WalletPayResponse> payByWallet(@Body WalletPayParam payParam);

    /**
     * 专车账单详情
     * @param param
     * @return
     */
    Observable<ExpressCarBillDetailResponse> fetchExpressBillDetail(ExpressCarBillDetailParam param);
}
